//todo no such method CardGridArrayMultiChoiceAdapter
///*
// * ******************************************************************************
// *   Copyright (c) 2013-2014 Gabriele Mariotti.
// *
// *   Licensed under the Apache License, Version 2.0 (the "License");
// *   you may not use this file except in compliance with the License.
// *   You may obtain a copy of the License at
// *
// *   http://www.apache.org/licenses/LICENSE-2.0
// *
// *   Unless required by applicable law or agreed to in writing, software
// *   distributed under the License is distributed on an "AS IS" BASIS,
// *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// *   See the License for the specific language governing permissions and
// *   limitations under the License.
// *  *****************************************************************************
// */
//
//package it.gmariotti.cardslib.library.internal;
//
//
//
//import java.util.ArrayList;
//import java.util.List;
//
//
//import it.gmariotti.cardslib.library.internal.multichoice.DefaultOptionMultiChoice;
//import it.gmariotti.cardslib.library.internal.multichoice.MultiChoiceAdapter;
//import it.gmariotti.cardslib.library.internal.multichoice.MultiChoiceAdapterHelperBase;
//import it.gmariotti.cardslib.library.internal.multichoice.OptionMultiChoice;
//import it.gmariotti.cardslib.library.view.CardGridView;
//import ohos.agp.components.ListContainer;
//import ohos.app.Context;
//
//
///**
// * @author Gabriele Mariotti (gabri.mariotti@gmail.com)
// */
//public abstract class CardGridArrayMultiChoiceAdapter extends CardGridArrayAdapter implements MultiChoiceAdapter, ListContainer.MultiChoiceModeListener {
//
//    /**
//     * Helper
//     */
//    private MultiChoiceAdapterHelperBase mHelper = new MultiChoiceAdapterHelperBase(this);
//
//
//    /**
//     * Option for multichoice
//     */
//    protected OptionMultiChoice mOptions;
//
//    // -------------------------------------------------------------
//    // Constructors
//    // -------------------------------------------------------------
//
//    /**
//     * Constructor
//     *
//     * @param context The current context.
//     * @param cards   The cards to represent in the ListView.
//     */
//    public CardGridArrayMultiChoiceAdapter(Context context, List<Card> cards) {
//        this(context, cards, new DefaultOptionMultiChoice());
//    }
//
//    /**
//     * Constructor
//     *
//     * @param context The current context.
//     * @param cards   The cards to represent in the ListView.
//     */
//    public CardGridArrayMultiChoiceAdapter(Context context, List<Card> cards, OptionMultiChoice options) {
//        super(context, cards);
//        this.mOptions = options;
//        mHelper.setMultiChoiceModeListener(this);
//    }
//
//    // -------------------------------------------------------------
//    // Adapter
//    // -------------------------------------------------------------
//
//    @Override
//    public void setCardGridView(CardGridView cardGridView) {
//        super.setCardGridView(cardGridView);
//        mHelper.setAdapterView(cardGridView);
//    }
//
//    /**
//     * Used to setup some element events for multichoice
//     *
//     * @param view
//     * @param mCard
//     * @param mCardView
//     * @param position
//     */
//    @Override
//    protected void setupMultichoice(View view, Card mCard, CardViewWrapper mCardView, long position) {
//        super.setupMultichoice(view, mCard, mCardView, position);
//        mHelper.setupMultichoice(view,mCard,mCardView,position);
//    }
//
//
//    @Override
//    public Card getItem(int position) {
//        Card card = super.getItem(position);
//        card.mMultiChoiceEnabled = true;
//        return card;
//    }
//
//    // -------------------------------------------------------------
//    // ActionMode
//    // -------------------------------------------------------------
//
//    public boolean startActionMode(Activity activity) {
//        return mHelper.startActionMode(activity);
//    }
//
//    /**
//     * Called when action mode is first created. The menu supplied will be used to
//     * generate action buttons for the action mode.
//     *
//     * @param mode ActionMode being created
//     * @param menu Menu used to populate action buttons
//     * @return true if the action mode should be created, false if entering this
//     *              mode should be aborted.
//     */
//    @Override
//    public boolean onCreateActionMode(ActionMode mode, Menu menu) {
//       return mHelper.onCreateActionMode(mode, menu);
//    }
//
//
//    /**
//     * Called when an action mode is about to be exited and destroyed.
//     *
//     * @param mode The current ActionMode being destroyed
//     */
//    @Override
//    public void onDestroyActionMode(ActionMode mode) {
//       mHelper.onDestroyActionMode(mode);
//    }
//
//    /**
//     * Called when an item is checked or unchecked during selection mode.
//     *
//     * @param mode The {} providing the selection mode
//     * @param position Adapter position of the item that was checked or unchecked
//     * @param id Adapter ID of the item that was checked or unchecked
//     * @param checked <code>true</code> if the item is now checked, <code>false</code>
//     *                if the item is now unchecked.
//     */
//    @Override
//    public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) {
//       mHelper.onItemCheckedStateChanged(mode, position, id, checked);
//    }
//
//    /**
//     * Indicate if action mode is started
//     *
//     * @return
//     */
//    @Override
//    public boolean isActionModeStarted() {
//        return mHelper.isActionModeStarted();
//    }
//
//    // -------------------------------------------------------------
//    // MultiChoice
//    // -------------------------------------------------------------
//
//    /**
//     * Returns the selected cards
//     * @return
//     */
//    protected ArrayList<Card>  getSelectedCards() {
//        return mHelper.getSelectedCards();
//    }
//
//    @Override
//    public OptionMultiChoice getOptionMultiChoice() {
//        return mOptions;
//    }
//}
